import { VNodeChild } from 'vue';
import type { TableBaseColumn } from 'naive-ui/lib/data-table/src/interface';
export interface InternalRowData {
  [key: string]: unknown;
}
export interface TagItem {
  value: string;
  key: string;
  type?: 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
  size?: 'small' | 'medium' | 'large';
}

export interface ProColumns<T = any> extends TableBaseColumn<T> {
  // 业务控制是否显示
  show?: boolean | ((column: ProColumns) => boolean);
  isTag?: boolean;
  render?: (rowData: T, rowIndex: number) => any[] | VNodeChild;
}

export interface TableActionType {
  reload: () => Promise<void>;
  form: any;
  tableRef: any;
}
